package webapp.tools;

import java.util.ArrayList;
import java.util.Random;
import javax.servlet.http.HttpSession;

/**
 * Contient des méthodes pour vérifier l'authentification de l'utilisateur
 * pour la session courante.
 */
public class Auth {
    
    /**
     * Test si l'utilisateur est connecté via la variable de session userid
     * @param session Session courante de l'utilisateur
     * @return true si la variable est non nulle, false sinon
     */
    public static boolean isAuth(HttpSession session)
    {
        return (session.getAttribute("user") != null);
    }

    /**
     * Test si l'utilisateur est connecté en tant qu'admin via la
     * variable de session admin
     * @param session Session courante de l'utilisateur
     * @return true si la variable est non nulle, false sinon
     */
    public static boolean isAdmin(HttpSession session)
    {
        return (session.getAttribute("admin") != null);
    }
    
    /**
     * Utilisé pour créer un clavier aléatoire pour la page de login.
     * @return Array of String des chiffres de 0 é 9 dans un ordre aléatoire
     */
    public static String[] randomKeyboard()
    {
        //Initialisation du tableau
        String[] keyboard = new String[10];
        ArrayList<String> list = new ArrayList<String>();
        list.add("1");
        list.add("6");
        list.add("2");
        list.add("0");
        list.add("9");
        list.add("3");
        list.add("8");
        list.add("5");
        list.add("4");
        list.add("7");
        
        //Mélange l'ordre du tableau
        int i = 0;
        while(list.size()>0)
        {
            Random rng = new Random();
            int rand = rng.nextInt(list.size());
            
            keyboard[i] = list.get(rand);
            list.remove(rand);
            
            i++;
        }
        return keyboard;
    }
}
